The switch
statement should be used only to clearly define some new branches in the control flow. As soon as a case
clause contains too many statements this highly decreases the readability of the overall control flow statement. In such case, the content of the
case
clause should be extracted into a dedicated method.
Noncompliant code example
The following code snippet illustrates this rule with the default threshold of 5:
switch myVariable {
case 0: // 6 lines till next case
methodCall1("")
methodCall2("")
methodCall3("")
methodCall4("")
methodCall5("")
case 1:
...
}
Compliant solution
switch myVariable {
case 0:
doSomething()
case 1:
...
}
...
func doSomething(){
methodCall1("")
methodCall2("")
methodCall3("")
methodCall4("")
methodCall5("")
}